package com.redepronik.negosysres.invfac.controller;

import java.io.Serializable;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

import org.primefaces.context.RequestContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import com.redepronik.negosys.invfac.entity.Banco;
import com.redepronik.negosys.invfac.service.BancoService;

@Controller
@Scope("session")
public class PruebaBean implements Serializable {

	private static final long serialVersionUID = 1L;
	private List<Banco> listaBancos;
	private Banco banco;

	@Autowired
	private BancoService bancoService;

	public PruebaBean() {
		banco = new Banco();
	}

	public void actualizar() {
		String mensaje = bancoService.actualizar(banco);
		if (mensaje.compareTo("SAVE") == 0) {
			presentarMensaje(new FacesMessage(FacesMessage.SEVERITY_INFO,
					"MENSAJE DEL SISTEMA", "SE ACTUALIZÓ CORRECTAMENTE"));
			RequestContext.getCurrentInstance().addCallbackParam("error", true);
		} else {
			presentarMensaje(new FacesMessage(FacesMessage.SEVERITY_FATAL,
					"MENSAJE DEL SISTEMA", "NO SE ACTUALIZÓ CORRECTAMENTE"));
			RequestContext.getCurrentInstance()
					.addCallbackParam("error", false);
		}
	}

	public void eliminar() {
		// bancoService.eliminar(banco.getBancoid());
		listaBancos = bancoService.obtener(null);
		presentarMensaje(new FacesMessage(FacesMessage.SEVERITY_INFO,
				"MENSAJE DEL SISTEMA", "ELIMINO " + banco.getNombre()));

	}

	public Banco getBanco() {
		return banco;
	}

	public List<Banco> getListaBancos() {
		return listaBancos;
	}

	@PostConstruct
	public void init() {
		listaBancos = bancoService.obtener(null);
	}

	public void limpiar() {
		banco = new Banco();
	}

	private void presentarMensaje(FacesMessage menssage) {
		FacesContext.getCurrentInstance().addMessage(null, menssage);
	}

	public void setBanco(Banco banco) {
		this.banco = banco;
	}

	public void setListaBancos(List<Banco> listaBancos) {
		this.listaBancos = listaBancos;
	}

}
